informatik_rwthfandomcom_de-20200214-history
Verschlüsselung
Mit Authentifizierung wird ein Mechanismus bezeichnet, der die Identität eines Kommunikationspartners sicherstellt. Mit Integritätkontrolle wird geprüft, ob eine Nachricht verändert wurde. Symmetrisch Bei symmetrischen Verfahren haben beide Kommunikationspartner einen gemeinsamen Schlüssel. Dieser muss ggf. über einen sicheren Kanal ausgetauscht werden. Es existieren mehrere, einfache Verfahren. Beim shift cipher werden Zeichen im Alphabet verschoben, bei dem Vigenère cipher noch zusätzlich um die ihren Index. Beide Verfahren sind sehr unsicher, nicht zuletzt wegen der kleinen Schlüsselzahl. Zusammenfassen lassen sich solche Verfahren unter monoalphabetischen Substitutionschiffren, die eine Abbildung der Zeichen innerhalb des Alphabets vornehmen. Bei Blockchiffren werden ganze Blöcke einer bestimmten Länge zugleich verschlüsselt. Der DES ist eine solche Blockchiffre. Data Encryption Standard (DES) Ein aufgrund des zu kleinen Schlüssels heutzutage unsicheres Verfahren ist DES. Als Blockchiffre und Substitutionschiffre permutiert es den Klartextblock. Dies geschieht in mehreren Runden, deren Rundenschlüssel zum Permutieren aus dem DES-Schlüssel abgeleitet wird. Das genaue Verfahren ist in den Vorlesungsfolien ( ) zu finden. Um der kurzen Schlüssellänge entgegenzuwirken wird beim triple DES dreimal DES angewendet. Dabei wird beim 2. Schritt entschlüsselt. Der Advanced Encryption Standard (AES) ist eine Verbesserung von DES mit adäquater Schlüssellänge und einigen weiteren Schutzmechanismen. Cipher Block Chaining (CBC) Die Aufteilung längerer Nachrichten in Blöcke, die gleich verschlüsselt werden, eröffnet Schwachstellen. Da gleiche Blöcke auf die gleiche Chiffre abgebildet werden, lassen sich Muster erkennen und der Kommunikationsverlauf durch Einspielen solcher Blöcke ändern. Daher muss die unterschiedliche Kodierung gleicher Blöcke sichergestellt werden. Dies wird dadurch erreicht, dass der Ciphertext vorangehender Blöcke mit in die Verschlüsselung des nächsten eingeht. Nur für den ersten muss eine Zufallszahl erzeugt werden, die auch dem Kommunikationspartner vertraulich mitgeteilt werden muss. Es lässt sich auch eine Integritätsprüfung per message authentication code (MAC) durchführen, indem eine Nachricht mehrfach mit sich selbst per CBC verschlüsselt wird und nur der letzt CBC-Code übertragen wird. Wurde die Nachricht verfälscht, ergibt sich beim Empfänger nicht der gleiche CBC-Code. Das CBC-MAC-Verfahren ist heutzutage allerdings unsicher. Diffie-Hellman-Schlüsselaustausch Ein fundamentales Problem symmetrischer Verschlüsselungsverfahren ist der Schlüsselaustausch. Um Schlüssel auch über einen unsicheren Kanal austauschen zu können, kommt der Algorithmus von Diffie-Hellman zum Einsatz. Das Prinzip lässt sich mit Farben veranschaulichen. Die Kommunikationsteilnehmer einigen sich öffentlich auf eine Grundfarbe. Beide wählen eine eigene, geheime Farbe, die sie mit der Grundfarbe mischen. Die Mischfarbe wird wieder öffentlich ausgetauscht. Durch Hinzugabe der eigenen, geheimen Farbe zur Mischfarbe erhalten beide Partner die gleiche Schlüsselfarbe. Da es schwer ist, die öffentlichen Mischfarben zu trennen, kann ein Außenstehender nicht die Schlüsselfarbe mischen.Diffie–Hellman key exchange. (2016, July 23). In Wikipedia, The Free Encyclopedia. Retrieved 16:09, July 25, 2016, from https://en.wikipedia.org/w/index.php?title=Diffie%E2%80%93Hellman_key_exchange&oldid=731132135 Mathematisch einigen sich beide öffentlich auf eine Primzahl p und einen Generator g . Dann wählen sie eine zufällige Zahl S_a bzw. S_b und berechnen T_a=g^{S_a}\operatorname{ mod} p bzw. T_b=g^{S_b}\operatorname{ mod} p . Sie tauschen T_a,T_b aus und berechnen dann k_{AB}=T_b^{S_a}\operatorname{ mod} p=g^{S_a\cdot S_b}\operatorname{ mod} p=T_a^{S_b}\operatorname{ mod} p . Damit erhalten beiden den gleichen, geheimen Schlüssel k_{AB} . Eine Schwierigkeit des Schlüsselaustauschs ist die Authentizität. Bei einem man in the middle-Angriff kann sich ein Angreifer Seite A gegenüber als B ausgeben und Seite B gegenüber als. Er tauscht dann eigene Schlüssel mit den beiden Seiten aus und kann ihre Kommunikation mitlesen, ohne dass sie dies bemerken würden. Daher sind Authentifizierungsverfahren nötig. Asymmetrisch Bei asymmetrischer Verschlüsselung kommt ein öffentlicher Schlüssel (public key) zum Einsatz, der Nachrichten verschlüsseln kann, und ein privater (private key), der für die Entschlüsselung zuständig ist. Diese Verfahren sind wesentlich langsamer als symmetrische und werden daher vor allem zum Schlüsselaustausch für symmetrische verwendet. Auch diese Verfahren sind durch man in the middle Angriffe gefährdet. RSA Das Verfahren von R''ivest, ''S''hamir und ''A''dleman nutzt Eulers und Fermats Theoreme und basiert auf der Komplexität der Faktorisierung von Zahlen. Es zwei große, geheime Primzahlen p,q gewählt und n=p\cdot q berechnet. Dann wird die Eulerfunktion \varphi(n)=(p-1)(q-1) berechnet. Ohne Kenntnis der Primzahlen, ist diese Rechnung praktisch unmöglich. Nun wird eine Zahl e gewählt, die relativ prim zu \varphi(n) ist und ihr Inverses d bestimmt (z. B. über den euklidischen Algorithmus), sodass d\cdot e=1\operatorname{ mod}\varphi(n) gilt. Damit ergibt sich der öffentliche Schlüssel (e, n) und der private Schlüssel d . Zum '''Verschlüsseln' einer Nachricht m wird die Chiffre c=m^e\operatorname{ mod}n berechnet. Zum Entschlüsseln einer Chiffre c wird m=c^d\operatorname{ mod}n durchgeführt. Es sind ebenfalls digitale Signaturen mit RSA möglich. Zum Signieren einer Nachricht m wird s=m^d\operatorname{ mod}n errechnet. Zur Prüfung der Signatur wird s^e\operatorname{ mod}n=m überprüft. Wieder ergeben man in the middle Angriffe bei der digitalen Signatur ein Authentifikationsproblem, da existenzielle Fälschungen erzeugt werden können. Dabei wird die Nachricht m ausgetauscht durch s^e\operatorname{ mod}n , wodurch die Überprüfung positiv läuft, aber die Nachricht meist sinnlos wird. Mit dem Public Key Cryptography Standard (PKCS) werden weitere Festlegungen getroffen, um RSA zu verbessern. Unter Anderem wird die Determinierbarkeit durch Aushandeln von Padding unterbunden. Damit ist es nicht mehr möglich zu entscheiden, welche Klartextnachricht zu einem Ciphertext passt. Digital Signature Standard (DSS) Dies kann durch kryptographische Hashfunktionen behoben werden. Sie erzeugen aus einer Nachricht eine Art Fingerabdruck. Jede Nachricht sollte einen anderen Abdruck ergeben, aber aus dem Abdruck ist die Nachricht nicht herleitbar. Durch Signatur dieses Hashes kann die Integrität der Nachricht garantiert werden. DSS basiert auf dem Problem der diskreten Logarithmen. Es wird wieder ein öffentlicher und ein geheimer Schlüssel erstellt. Bei der Signatur wird ein zufällig Arbeitsschlüssel gewählt, der nicht übermittelt wird. Aus diesem werden ein Zahlenpaar abgeleitet, das die Signatur darstellt. Anhand dessen kann die Nachricht geprüft werden. Dabei ist es wichtig, für eine neue Nachricht einen anderen Arbeitsschlüssel zu wählen, da sonst der private Schlüssel anhand der beiden Signaturen mit gleichen Arbeitsschlüssel berechenbar wäre. Authentifizierung Mittels RSA kann ein challenge/response-Verfahren realisiert werden. Dabei bietet Partner A an, sich zu authentifizieren, woraufhin B eine challenge schickt. Diese signiert A und sendet sie zurück, was B mit dem öffentlichen Schlüssel von A prüfen kann. Dabei ist wichtig darauf zu achten, dass die challenge stets zufällig und neu gewählt wird, da sonst Angriffe vereinfacht werden. Ein Zufallszahl, die nur einmal verwendet wird, wird nonce (n''umber used ''once) genannt. Bei mutual authentication ist beiden Partnern bereits der öffentliche Schlüssel des Gegenüber bekannt. Die Anfrage und die challenge werden verschlüsselt übertragen. Dabei beweist das Entschlüsseln jeweils die Identität des Partners. Trusted intermediaries Diese Verfahren unterliegen immer noch dem Problem, dass sichergestellt werden muss von wem die öffentlichen Schlüssel tatsächlich stammen. Dazu werden trusted intermediaries eingesetzt. Zu diesen kann ein geheimer Schlüssel etabliert werden und sie können für beliebige Kommunikationspartner geheime Schlüssel erstellen und verteilen oder öffentliche Schlüssel mitteilen. Key distribution center (KDC) Ein KDC vereinbart mit jedem registrierten Nutzer einen geheimen Schlüssel. Für eine gesicherte Kommunikation fragt ein Teilnehmer beim KDC einen Sitzungsschlüssel, der Ticket genannt wird, an. Das KDC schickt das Ticket an beide Partner. Hierbei ist selbstverständlich das KDC ein single point of failure. Außerdem kann es passieren, dass der zweite Partner den Schlüssel noch nicht erhalten hat, ehe der erste mit der Kommunikation beginnt. Dies kann dadurch behoben werden, dass der anfragende Partner A vom KDC das Ticket zugesandt bekommt, das für B bestimmt ist (und mit dessen geheimen Schlüssel, den sich B und das KDC teilen, verschlüsselt ist). Dieses Ticket kann A dann mit der ersten verschlüsselten Nachricht an B schicken. Damit haben beide einen geheimen Schlüssel ausgetauscht. Auch dieses Verfahren ist nicht sicher gegen replay-Angriffe. Ein Angreifer kann alte Nachrichten neu einspielen und sich so als einer der Partner ausgeben. Dagegen werden in der Needham-Schroeder-Erweiterung nocne gebraucht. Partner A schickt bei der Anfrage an den Server ein nonce mit, das von dem zurückgesendet wird. Ebenso schickt A an B ein nonce, das dieser mit einem eigenen nonce zurücksendet. A bestätigt das nonce von B, sodass nun alle sicher sein können, dass die ausgetauschten Nachrichten aktuell sind. Es gibt allerdings immer noch ein Problem. Erfährt ein Angreifer den geheimen Schlüssel von A und dem KDC, kann er ein Ticket für B generieren, das auch dann noch gültig ist, wenn A den Schlüssel ändert. Daher wird ein zusätzliches nonce am Anfang eingefügt, indem A erst B anfragt und B dann ein verschlüsseltes nonce an A schickt. Da A nur mit einem aktuellen Schlüssel vom KDC dieses nonce entschlüsseln kann, beweist das Zurücksenden, dass der geheime Schlüssel aktuell ist. Eine Implementation eines solchen KDC-Verfahrens ist Kerberos, das einige Erweiterungen vorhält. Certification Authority (CA) Bei asymmetrischer Verschlüsselung kann zur Authentifizierung der öffentlichen Schlüssel eine CA herangezogen werden. Diese ist eine vertrauenswürdige Stelle, die Zertifikate austeilen kann. Ein Zertifikat enthält mindestens den öffentlichen Schlüssel und einen Identifikator, über die der Schlüssel dem Kommunikationspartner zugeschrieben werden kann. Die Zertifikate sind von der CA signiert. Das Problem der Authentizität des öffentlichen Schlüssels der CA selbst wird dadurch gelöst, dass in Systemen wie z. B. Browsern solche Schlüssel mitgeliefert werden. Zertifikate haben ein Auslaufdatum, ab dem sie nicht mehr gültig sind. Manchmal sollen Zertifikate jedoch vor Ablauf dieser Zeit zurückgezogen werden, z. B. wegen Verlust des privaten Schlüssels oder dessen Kompromittierung. Dafür stellt ein CA certificate revocation lists (CRLs) zur Verfügung, auf denen zurückgezogene Zertifikate eingetragen sind. Das letzte Problem ist die Erstellung eines Zertifikats bei einer CA, da dafür ebenfalls eine Authentifizierung nötig ist. Dafür muss die Identität über einen anderen Weg, z. B. der Post, sichergestellt werden. Referenzen Wenn nicht anders angegeben, stammt der Inhalt aus den Vorlesungsfolien: * Meyer, U.: Vorlesungsfolien "20160529-SS-DatKom-4-Vermittlungsschicht" ( ) Siehe auch Übersichtsseite von Datenkommunikation und Sicherheit